package com.atguigu.day05;

//Volatile保证可见性
//工作内存与主内存同步延迟现象导致的可见性问题
//Volatile关键字可以使一个线程修改后的变量立即对其他线程可见

import javax.xml.transform.Source;
import java.util.concurrent.TimeUnit;

public class VolatileSeeDemo {
    private static volatile Integer i = 1;

    public static void main(String[] args) {
         new Thread(() -> {
             System.out.println("这是线程A中的i："+i);
             while (i==1){

             }
             System.out.println("如果被通知后执行的代码，此时i："+i);
                 }, "A").start();
//线程睡眠几秒
try {TimeUnit.SECONDS.sleep(2);} catch (InterruptedException e) {throw new RuntimeException(e);}


         new Thread(()->{
             i=2;
             System.out.println("这是线程B中对i修改后的值："+i);
         },"B").start();
    }

}
